package com.ruoyi.demo.domain.vo;

import java.util.Date;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;



/**
 * 案件管理视图对象
 *
 * @author ruoyi
 * @date 2023-04-21
 */
@Data
@ExcelIgnoreUnannotated
public class TestCaseVo {

    private static final long serialVersionUID = 1L;

    private Long id;

    /**
     * 案件年度
     */
    @NotBlank(message = "案件年度不能为空", groups = { AddGroup.class, EditGroup.class })
    private String year;

    /**
     * 案件序号
     */
    @NotBlank(message = "案件序号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String no;

    /**
     * 案件类别
     */
    @NotBlank(message = "案件类别不能为空", groups = { AddGroup.class, EditGroup.class })
    private String type;

    /**
     * 案号
     */
    @NotBlank(message = "案号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String caseNo;

    /**
     * 案件名称
     */
    @NotBlank(message = "案件名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 案件承办人员
     */
    @NotBlank(message = "案件承办人员不能为空", groups = { AddGroup.class, EditGroup.class })
    private String user;

    /**
     * 案件承办人员联系方式
     */
    @NotBlank(message = "案件承办人员联系方式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String phone;

    /**
     * 受案时间
     */
    @NotNull(message = "受案时间不能为空", groups = { AddGroup.class, EditGroup.class })
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @JSONField(format="yyyy-MM-dd")
    private Date sTime;

    /**
     * 立案状态
     */
    @NotBlank(message = "立案状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private String status;

    /**
     * 立案时间
     */
    @NotNull(message = "立案时间不能为空", groups = { AddGroup.class, EditGroup.class })
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @JSONField(format="yyyy-MM-dd")
    private Date iTime;

    /**
     * 结案时间
     */
    @NotNull(message = "结案时间不能为空", groups = { AddGroup.class, EditGroup.class })
    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @JSONField(format="yyyy-MM-dd")
    private Date eTime;

    /**
     * 简要案情
     */
    @NotBlank(message = "简要案情不能为空", groups = { AddGroup.class, EditGroup.class })
    private String descript;

    /**
     * 违反条例
     */
    @NotBlank(message = "违反条例不能为空", groups = { AddGroup.class, EditGroup.class })
    private String broke;

    /**
     * 罚则
     */
    @NotBlank(message = "罚则不能为空", groups = { AddGroup.class, EditGroup.class })
    private String sub;

    /**
     * 处罚决定
     */
    @NotBlank(message = "处罚决定不能为空", groups = { AddGroup.class, EditGroup.class })
    private String subDecide;

    /**
     * 当事人类型
     */
    @NotBlank(message = "当事人类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String curType;

    /**
     * 姓名
     */
    private String curName;

    /**
     * 性别
     */
    private String curSex;

    /**
     * 民族
     */
    private String curNation;

    /**
     * 出生日期
     */
    @JSONField(format="yyyy-MM-dd")
    private Date curBirth;

    /**
     * 身份证（其他有效证件）号码
     */
    private String curIdcard;

    /**
     * 工作单位和职务
     */
    private String curOrg;

    /**
     * 住所
     */
    private String curAddr;

    /**
     * 联系电话
     */
    private String curPhone;

    /**
     * 字号名称
     */
    private String curFontname;

    /**
     * 统一社会信用代码（注册码）
     */
    private String curNo;

    /**
     * 单位名称
     */
    private String orgName;

    /**
     * 法定代表人（负责人）
     */
    private String orgOwner;

    /**
     * 统一社会信用代码
     */
    private String orgNo;

    /**
     * 联系电话
     */
    private String orgPhone;

    /**
     * 住所
     */
    private String orgAddr;


}
